import { cookies } from "next/headers";
import { redirect } from "next/navigation";
import { verifyDisplayJWT } from "@/lib/auth";
import prisma from "@/lib/prisma";
export default async function DisplayAuthPage({
params,
}: {
params: { token: string };
}) {
let display;
try {
const claims = await verifyDisplayJWT(params.token);
display = await prisma.display.findUniqueOrThrow({
where: {
authToken: params.token,
id: claims.displayId,
organizationId: claims.orgId,
},
select: { mode: true },
});
const cookieStore = await cookies();
cookieStore.set("display-token", params.token, {
httpOnly: true,
secure: process.env.NODE_ENV === "production",
sameSite: "strict",
maxAge: 60 * 60 * 24 * 30,
});
} catch (err) {
redirect("/display/invalid-token");
}
redirect(`/display/${display.mode.toLowerCase()}`);
}